import pyperclip


class LineInserter:
    """按指定规则在每组特定行插入前后字符串"""

    def __init__(self, n: int, x: int, m: str = '', y: str = ''):
        """
        n: 每几个行为一个处理单元
        x: 在组内第几行插入内容（从1开始）
        m: 添加在前面的字符串
        y: 添加在后面的字符串
        """
        self.n = n
        self.x = x
        self.m = m
        self.y = y

    def process_lines(self, lines: list[str]) -> list[str]:
        """处理多行文本"""
        result = []
        for i in range(0, len(lines), self.n):
            block = lines[i:i + self.n]
            for j, line in enumerate(block):
                if j == self.x - 1:
                    result.append(f"{self.m}{line}{self.y}")
                else:
                    result.append(line)
        return result

    @staticmethod
    def read_input(end_marker="end") -> list[str]:
        """从控制台读取多行文本"""
        print(f"请输入多行文本（输入 '{end_marker}' 单独一行表示结束）：")
        lines = []
        while True:
            line = input()
            if line.strip() == end_marker:
                break
            lines.append(line)
        return lines


if __name__ == "__main__":
    n = int(input("每几个行为一个处理单元（n）："))
    x = int(input("在哪一行插入内容（x，第x行，1开始）："))
    m = input("要添加在前面的字符串（m，默认为空）：") or ''
    y = input("要添加在后面的字符串（y，默认为空）：") or ''

    lines = LineInserter.read_input()
    inserter = LineInserter(n=n, x=x, m=m, y=y)
    output_lines = inserter.process_lines(lines)

    output_text = '\n'.join(output_lines)


    print("\n处理后的结果：\n")
    print(output_text)
